home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ring.yamanashi.ac.jp/pub/pc/freem/action/
/
action.zip
/
shottank.zip
/
SHOTEs`mj
/
hsptmp
< prev
next >
Wrap
Text File
|
2004-03-19
|
13KB
|
465 lines
#include "hgimg.as"
title "SHOT TANK"
;ü@âXâNâèü[âôé╠Åëè·É▌ÆΦ
chgdisp 1
bgscr 2,640,480,0 ; âtâïâXâNâèü[âôé═òKé╕bgscré┼ì∞ɼ
cls 4
hgsetreq SYSREQ_DXMODE,1 ; âtâïâXâNâèü[âôâéü[âhé≡ÄwÆΦ
hgsetreq SYSREQ_DXWIDTH,640 ; âtâïâXâNâèü[âôë≡æ£ôxX
hgsetreq SYSREQ_DXHEIGHT,480 ; âtâïâXâNâèü[âôë≡æ£ôxY
hgini
randomize:âXâeü[âW=0:âRâôâeâBâjâàü[=3
*start
hgreset
;ü@ë╣èyâfü[â^é╠ô╟é▌ì₧é▌
font "élér âSâVâbâN",40
ÄwÆΦ=0:sdim ìÇû┌,20,6
s=0
ìÇû┌="GAME START","EXIT"
buffer 14,0,0:picload "zyunnbi.bmp":buffer 13,0,0:picload "make.bmp":buffer 12,0,0:picload "win.bmp"
buffer 9,0,0:picload "sute-zi1.bmp":buffer 10,0,0:picload "sute-zi11.bmp":buffer 11,0,0:picload "sute-zi12.bmp"
buffer 8,0,0:picload "taitoru.bmp":buffer 4,0,0:picload "me-ta.bmp":buffer 5,0,0:picload "me-ta2.bmp"
buffer 6,0,0:picload "me-ta3.bmp":buffer 7,0,0:picload "me-ta4.bmp"
buffer 15,0,0:picload "sute-zi2.bmp":buffer 16,0,0:picload "sute-zi21.bmp":buffer 17,0,0:picload "sute-zi22.bmp"
buffer 18,0,0:picload "sute-zi3.bmp":buffer 19,0,0:picload "sute-zi31.bmp":buffer 20,0,0:picload "sute-zi32.bmp"
buffer 21,0,0:picload "sute-zi4.bmp":buffer 22,0,0:picload "sute-zi41.bmp":buffer 23,0,0:picload "sute-zi42.bmp"
buffer 24,0,0:picload "sute-zi5.bmp":buffer 25,0,0:picload "sute-zi51.bmp":buffer 26,0,0:picload "sute-zi52.bmp"
buffer 27,0,0:picload "sute-zi.bmp":buffer 28,0,0:picload "sute-zi7.bmp":buffer 29,0,0:picload "sute-zi8.bmp"
sndload "music.mid",0,1:sndload "baku.wav",3 :sndload "baku2.wav",4:sndload "music2.mid",5,1:sndload "music5.mid",8,1
sndload "music3.mid",6,1:sndload "music4.mid",7,1:sndload "music6.mid",10,1:sndload "music7.mid",11,1
; öÜö¡
setsizef 4.5f,4.5f :setuv 0,0,79,79:addplate mdex,1:texload "baku.bmp":uvanim mdex,2,8,1
setsizef 1.5f,1.5f :setuv 0,0,94,94
addplate mdey,1
texload "kemu.bmp"
uvanim mdey,2,10,1
setsizef 10.5f,10.5f :setuv 0,0,79,79
addplate mdez,1
texload "baku.bmp"
uvanim mdez,4,8,1
;ü@éléwâfü[â^é╠ô╟é▌ì₧é▌üEâIâuâWâFâNâgôoÿ^
if âXâeü[âW=0{mxload "eria"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
if âXâeü[âW=1{mxload "eria2"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
if âXâeü[âW=2{mxload "eria3"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
if âXâeü[âW=3{mxload "eria4"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
if âXâeü[âW=4{mxload "eria5"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
if âXâeü[âW=5{mxload "eria6"
regobj bgchr,stat,OBJ_GROUND
selpos bgchr:objset3 0, 0, 0}
mxload "tank1":model=stat
regobj mychr,model:setcoli mychr,1,8
selpos mychr:objset3 50, 0, 0
if âXâeü[âW=0{mxload "tank2":model=stat
regobj mychr2,model,OBJ_MOVE:setcoli mychr2,2,4
selpos mychr2:objset3 -50, 0, 0}
if âXâeü[âW=1{mxload "tank3":model=stat
regobj mychr2,model,OBJ_MOVE:setcoli mychr2,2,4
selpos mychr2:objset3 -50, 0, 0}
if âXâeü[âW=2{mxload "tank4":model=stat
regobj mychr2,model,OBJ_MOVE:setcoli mychr2,2,4
selpos mychr2:objset3 -50, 0, 0}
if âXâeü[âW=3{mxload "tank5":model=stat
regobj mychr2,model,OBJ_MOVE:setcoli mychr2,2,4
selpos mychr2:objset3 -50, 0, 0}
if âXâeü[âW=4{mxload "tank6":model=stat
regobj mychr2,model,OBJ_MOVE:setcoli mychr2,2,4
selpos mychr2:objset3 -50, 0, 0}
if âXâeü[âW=5{mxload "tank7":model=stat
regobj mychr2,model:setcoli mychr2,2,4
selpos mychr2:objset3 0, 0, 0}
;ü@Æeé╠ëµæ£é≡ôoÿ^
setuv 0,0,99,99:setsizef 3.0f, 3.0f
addplate ball1,1:texload "tama1.bmp"
if âXâeü[âW=0{addplate ball2,1:texload "tama2.bmp"
}
if âXâeü[âW=1{setuv 0,0,64,64:setsizef 2.5f, 2.5f
addplate ball2,1:texload "tama3.bmp"
}
if âXâeü[âW=2{setuv 0,0,100,100:setsizef 4.5f, 4.5f
addplate ball2,1:texload "tama4.bmp"
}
if âXâeü[âW=3{setuv 0,0,100,100:setsizef 3.0f, 3.0f
addplate ball2,1:texload "tama5.bmp"
}
if âXâeü[âW=4{setuv 0,0,100,100:setsizef 1.5f, 1.5f
addplate ball2,1:texload "tama6.bmp"
}
if âXâeü[âW=5{setuv 0,0,100,100:setsizef 1.0f, 1.0f
addplate ball2,1:texload "tama7.bmp"
}
if âXâeü[âW=5{setuv 0,0,100,100:setsizef 8.5f, 8.5f
addplate ball3,1:texload "tama8.bmp"
}
snd 5
if âXâeü[âW!=0:goto *é═é╢é▀
*â^âCâgâïëµû╩
gsel 2
stick key,ÿAÄ╦*10,1
if s>150 {
ÄwÆΦ+=(key&8>0)-(key&2>0)
if ÄwÆΦ<0:ÄwÆΦ=1
if ÄwÆΦ>1:ÄwÆΦ=0
if key&16:on ÄwÆΦ goto *storyâüâCâô,*exit
}
s+2
repeat 6
strlen Æ╖,ìÇû┌.cnt
palcolor -(cnt=ÄwÆΦ)*200+255
pos -8*10+320,cnt*40+350
mes ìÇû┌.cnt
loop
pos 20,20:gzoom 600,300,8,0,0,400,s
if s>155:s=155
redraw 1:redraw 0:await 40:palcolor:boxf
goto *â^âCâgâïëµû╩
////////////////////////////////////////////////////////////////////////////
*storyâüâCâô
wait 50
cls 4
goto *é═é╢é▀
////////////////////////////////////////////////////////////////////////////
*exit
goto *owari
////////////////////////////////////////////////////
*é═é╢é▀
gsel 2
cls 4
sndoff
if âRâôâeâBâjâàü[=0{âXâeü[âW=0:goto *start
}
if âXâeü[âW=6{âXâeü[âW=0:goto *start
}
repeat 400
color 255,255,255
font "élérü@âSâVâbâN",40
pos 350,300:mes "NOW LODING...."
if âXâeü[âW=1{
font "élérü@âSâVâbâN",70
pos 90,30:mes "SECOND STAGE"
pos 30,100:gcopy 15,0,0,321,185
pos 320,100:gcopy 16,0,0,315,179
pos 30,300:gcopy 17,0,0,300,150}
if âXâeü[âW=0{
font "élérü@âSâVâbâN",70
pos 90,30:mes "FIRST STAGE"
pos 30,100:gcopy 9,0,0,278,142
pos 320,100:gcopy 10,0,0,291,181
pos 30,300:gcopy 11,0,0,300,150}
if âXâeü[âW=2{
font "élérü@âSâVâbâN",70
pos 90,30:mes "THIRD STAGE"
pos 30,100:gcopy 18,0,0,328,204
pos 320,100:gcopy 19,0,0,341,179
pos 30,300:gcopy 20,0,0,300,150
}
if âXâeü[âW=3{
font "élérü@âSâVâbâN",70
pos 90,30:mes "FOUR STAGE"
pos 30,100:gcopy 21,0,0,328,204
pos 320,100:gcopy 22,0,0,341,179
pos 30,300:gcopy 23,0,0,300,150
}
if âXâeü[âW=4{
font "élérü@âSâVâbâN",70
pos 90,30:mes "FIVE STAGE"
pos 30,100:gcopy 24,0,0,328,204
pos 320,100:gcopy 25,0,0,341,179
pos 30,300:gcopy 26,0,0,300,150
}
if âXâeü[âW=5{
font "élérü@âSâVâbâN",70
pos 90,30:mes "FINAL STAGE"
pos 30,100:gcopy 27,0,0,328,204
pos 320,100:gcopy 28,0,0,341,179
pos 30,300:gcopy 29,0,0,300,150
}
font "élérü@âSâVâbâN",25
pos 400,400:mes "ÄcéΦâRâôâeâBâjâàü["+âRâôâeâBâjâàü[
await 5
loop
cls 4
*greset
gsel 2
setborder 140.0f,140.0f,140.0f
hp=300:hp2=300
selang mychr:objset1 1,0
selang mychr2:objset1 1,0
time=0:time2=0:time3=0:time4=0:zikan=1:time5=0
if âXâeü[âW=0:snd 0
if âXâeü[âW=1:snd 6
if âXâeü[âW=2:snd 7
if âXâeü[âW=3:snd 8
if âXâeü[âW=4:snd 10
if âXâeü[âW=5:snd 11
*main
; âQü[âÇÆåé╠âïü[âv
repeat
hgdraw
drawf = stat
gmode 2
stick k,15,1
if k&128 : goto *owari
my=mychr:myball=ball1:mycl=4:gosub *keymove
if lani!=myanim : lani=myanim : objact my,lani
if âXâeü[âW=0{if damage : hp-30 : if hp<0 : goto *dead
}
if âXâeü[âW=1{if damage : hp-30 : if hp<0 : goto *dead
}
if âXâeü[âW=2{if damage : hp-35 : if hp<0 : goto *dead
}
if âXâeü[âW=3{if damage : hp-25 : if hp<0 : goto *dead
}
if âXâeü[âW=4{if damage : hp-10 : if hp<0 : goto *dead
}
if âXâeü[âW=5{
if time3>200{
if time3<400{
if damage : hp-10 : if hp<0 : goto *dead
}}}
if âXâeü[âW=5{
if time3>400{
if time3<800{
if damage : hp-5 : if hp<0 : goto *dead
}}}
my=mychr2:myball=ball2:mycl=8:gosub *keymove2
if lani2!=myanim : lani2=myanim : objact my,lani2
if âXâeü[âW=0{if damage : hp2-20 : if hp2<0 : goto *dead
}
if âXâeü[âW=1{if damage : hp2-15 : if hp2<0 : goto *dead
}
if âXâeü[âW=2{if damage : hp2-10 : if hp2<0 : goto *dead
}
if âXâeü[âW=3{if damage : hp2-20 : if hp2<0 : goto *dead
}
if âXâeü[âW=4{if damage : hp2-13 : if hp2<0 : goto *dead
}
if âXâeü[âW=5{if damage : hp2-5 : if hp2<0 : goto *dead
}
if drawf{
redraw 0
pos 5,15:gcopy 5,0,0,300,80
pos 11,43:gcopy 4,0,0,hp-12,46
pos 320,15:gcopy 7,0,0,300,80
pos 326,42:gcopy 6,0,0,hp2-12,46
redraw 1
}
time+1:time2+1:time3+1:time4+1:time5+1
if time>200 :time4=0
rnd r, 7
r = 3 - r // r é═ [-3, -2, -1, 0, 1, 2, 3] é╠é╟éΩé⌐é╔é╚éΘ
fvseti fv8, r
fvmul fv8, 0.05f // fv.0 é╔ 0.05f é≡é⌐é»éΘ
Ä₧è╘+1
hgsync speed
if zikan=1{
pos 150,200:gcopy 14,0,0,300,100
zikan=0:wait 300}
loop
*keymove
; ôûé╜éΦö╗ÆΦ
damage=0:getcoli a,my,2.0f
if a!=-1 : damage=10
if a!=-1 : snd 3
if a!=-1 : {selpos a :objgetfv po
regobj ob,mdex,OBJ_UVANIM_1SHOT
selpos ob :objsetfv po
}
if a!=-1 :delobj a
; âLü[é╔éµéΘê┌ô«
selpos my
objgetv fv:mx=fv.0:mz=fv.2
if k&16 : gosub *myshot
if k&1 : gosub *mymov
if k&4 : gosub *mymov
if k&2 : gosub *mymov
if k&8 : gosub *mymov
return
*keymove2
selpos my
objgetv fv:mx=fv.0:mz=fv.2
if âXâeü[âW=0:if time3>70: gosub *myshot2
if âXâeü[âW=1:if time3>70: gosub *myshot2
if âXâeü[âW=2:if time3>80: gosub *myshot2
if âXâeü[âW=3:if time3>98: gosub *myshot2
if âXâeü[âW=4:if time3>20: gosub *myshot2
if âXâeü[âW=5{if time3>200:if time3<400:if time5>5: gosub *myshot2
}
if âXâeü[âW=5{if time3>430:if time3<800:myball=ball3:if time5>3:fv8=0.0f: gosub *myshot2
}
; ôûé╜éΦö╗ÆΦ
if âXâeü[âW=0{damage=0:getcoli a,my,2.0f
}
if âXâeü[âW=1{damage=0:getcoli a,my,2.0f
}
if âXâeü[âW=2{damage=0:getcoli a,my,2.0f
}
if âXâeü[âW=3{damage=0:getcoli a,my,2.0f
}
if âXâeü[âW=4{damage=0:getcoli a,my,2.0f
}
if âXâeü[âW=5{damage=0:getcoli a,my,20.0f
}
if a!=-1 : damage=10
if a!=-1 : snd 3
if a!=-1 : {selpos a :objgetfv po
regobj ob,mdex,OBJ_UVANIM_1SHOT
selpos ob :objsetfv po
}
if a!=-1 :delobj a
if âXâeü[âW=0:if time3>70:time3=0
if âXâeü[âW=1:if time3>70:time3=0
if âXâeü[âW=2:if time3>80:time3=0
if âXâeü[âW=3:if time3>100:time3=0
if âXâeü[âW=4:if time3>20:time3=0
if âXâeü[âW=5:if time3>800:time3=0
if myball=ball2{if time5>5:time5=0
}
if myball=ball3{if time5>3:time5=0
}
gosub *ôGê┌ô«
return
*ôGê┌ô«
// ûCæΣé╞Ä⌐ï@é╠ê╩ÆuÅεò±é≡ĵô╛é╡é▄é╖
selpos mychr2
objgetfv posEnemy
selpos mychr
objgetfv posMe
// ûCÉgé╠ï┬èpé╞É∙ë±èpôxé≡ïüé▀é▄é╖
fvface posEnemy, posMe.0, posMe.1, posMe.2
selang mychr2
objsetfv posEnemy
// ôGé╠ê┌ô«ù╩é╞ïüé▀é▄é╖
selpos mychr2
objgetfv posEnemy
fvsub posMe, posEnemy.0, posEnemy.1, posEnemy.2
fvdiv posMe, 400f, 400f, 400f
seldir mychr2
objsetfv posMe
*mymov
speed=20
if k&2{
if time2>20{
selpos my :objgetfv po
regobj ob,mdey,OBJ_UVANIM_1SHOT
selpos ob :objsetfv po
time2=0
}}
; âJâüâë&Ä⌐âLâââëê┌ô«
selpos mychr
objgetfv fv
selang mychr
if k&1 : objaddf1 1,-0.008f
if k&4 : objaddf1 1,0.008f
if k&2 { ; æOÉi
objgetfv fv2
fvdir fv2,0.0f,0.0f,0.12f
fvadd fv,fv2.0,fv2.1,fv2.2
}
if k&8 { ; îπæ▐
objgetfv fv2
fvdir fv2,0.0f,0.0f,-0.1f
fvadd fv,fv2.0,fv2.1,fv2.2
}
fvmin fv, -70.0f, -70.0f, -70.0f ; ë║î└
fvmax fv, 70.0f, 70.0f, 70.0f ; Åπî└
selpos mychr
objsetfv fv
;âJâüâëé╠îⁿé½é≡ìXÉV
selang mychr
objgetfv fv_cang
fvadd fv_cang,0.0f, 34.6f, 0.0f ;É^îπéδé⌐éτé╛é╞æOé¬î⌐éªé╚éóé╠é┼Å¡é╡ë║îⁿé½é╔é╖éΘ
fvmul fv_cang,1.0f,-1.0f, 1.0f
selcang : objsetfv fv_cang
;âJâüâëé╠ê╩Æué≡ìXÉV
selpos mychr
objgetfv fv_cpos
fvset fv_wk,0.0f,0.0f,0.0f
fsin fv_wk.0,fv_cang.1
fcos fv_wk.2,fv_cang.1
fvmul fv_wk,10.0f,1.0f,10.0f
selcpos
objsetfv fv_cpos
objaddfv fv_wk
objaddf3 0.0f,-3.3f,0.0f ;É^îπéδé⌐éτé╛é╞æOé¬î⌐éªé╚éóé╠é┼Å¡é╡ìééóê╩Æué╔é╖éΘ
return
*myshot
;ü@Æeé╠è╟ù¥é≡ìséñ
if time>45 {
regobj shot,myball,OBJ_XFRONT|OBJ_BORDER|OBJ_MOVE
setcoli shot,mycl,0
selpos shot:objsetv fv
selang my:objgetfv fv
fvdir fv,0.0f,0.0f,1.4f
seldir shot:objsetfv fv
snd 4
time=0
}
return
*myshot2
;ü@Æeé╠è╟ù¥é≡ìséñ
rnd ran,8
regobj shot,myball,OBJ_XFRONT|OBJ_BORDER|OBJ_MOVE
setcoli shot,mycl,0
selpos shot:objsetv fv
selang my:objgetfv fv
if âXâeü[âW=0{fvdir fv,fv8,0.0f,-1.2f
}
if âXâeü[âW=1{fvdir fv,fv8,0.0f,-1.6f
}
if âXâeü[âW=2{fvdir fv,fv8,0.0f,-1.4f
}
if âXâeü[âW=3{fvdir fv,fv8,0.0f,-1.3f
}
if âXâeü[âW=4{fvdir fv,fv8,0.0f,-1.4f
}
if âXâeü[âW=5{
fvdir fv,fv8,0.0f,-1.4f
}
seldir shot:objsetfv fv
snd 4
return
*dead
; Ńösö╗ÆΦ
zx=0
repeat 400
zx+1
if zx>100:zx=100
hgdraw
if hp<0{pos 150,200:gcopy 13,0,0,300,zx
selpos my :objgetfv po
regobj ob,mdez,OBJ_UVANIM_1SHOT
selpos ob :objsetfv po
delobj mychr}
if hp2<0{pos 150,200:gcopy 12,0,0,300,zx
selpos my :objgetfv po
regobj ob,mdez,OBJ_UVANIM_1SHOT
selpos ob :objsetfv po
delobj mychr2}
hgsync speed
stick k,15,1:if k&128 : goto *owari
selang my:objaddf1 1,0.2f
delobj my
loop
if hp<0{âRâôâeâBâjâàü[-1:goto *start
}
if hp2<0{âXâeü[âW+1:goto *start
}
goto *start
*owari
hgbye
end